# -*- coding: utf-8 -*-
import hildon
import gtk
import os
import sys
from cesta import cesta

class ecka:
    
    def vytvor_selector(self):
        database = file(cesta+"/database.dat", "r");
        r = database.read();
        
        cary = 0
        nazev = ""
        mezi = []

        for i in range(len(r)):
            rep = r[i]
            if rep == "|":
                rep = " "
                cary = cary + 1
  
            if cary == 0:
                nazev = nazev + rep
    
            if rep == "\n":
                if nazev != "\n": 
                    mezi.append(nazev)
                cary = 0
                nazev = ""
        
        
        selector = hildon.TouchSelectorEntry(text = True);
        
        for polozka in range(len(mezi)):
            selector.append_text(mezi[polozka]);
            
        return selector;
    
    def na_web(self, widget, kod):
        www = "string:http://www.emulgatory.cz/seznam-ecek?prisada="+kod;
    
        os.system("dbus-send --print-reply --dest=com.nokia.osso_browser "+\
                  "/com/nokia/osso_browser/request "+\
                  "com.nokia.osso_browser.open_new_window "+\
                  www);
                  
        
    def nebez_e(self, widget):
        win3=hildon.StackableWindow();
        win3.set_title("Skodlive emulgatory");
        
        skodliva= file(cesta+"/skodliva.dat", "r");
        skodlivar=skodliva.read();
        
        
        
        label2=gtk.Label();
        label2.set_text(skodlivar);
        
        area1 = hildon.PannableArea();
        area1.add_with_viewport(label2);
        
        win3.add(area1);
        win3.show_all();
        skodliva.close();
    
    def stupskod(self, widget):
        win2=hildon.StackableWindow();
        win2.set_title("Stupnice skodlivosti");
        label1=gtk.Label();
        label1.set_text(u"0 Přírodní látka, získaná přírodní cestou\n1 Látka vyskytující se v přírodě, získaná synteticky\n2 Syntetická přísada, bez známých vedlejších účinků\n3 Přísada nevhodná pro děti, alergiky, osoby citlivé na chemii v potravě, ...\n4 Přísada, která je v podezření jako příčina alergií, hyperaktivity, stresu ...\n5 Přísada, která pravděpodobně způsobuje alergie, hyperaktivitu, stres, ...\n6 Přísada, která má pravděpodobně karcinogenními účinky\n7 Látka ohrožující zdraví");
        win2.add(label1);
        win2.show_all();
    
    def hledej(self, widget, selector, win):
        hledano = selector.get_current_text()
        vhledano= hledano.replace("e", "E");
        vhledano = vhledano.replace(' ', '');

        database = file(cesta+"/database.dat", "r");
        r = database.read();
        
    
        znakh = r.find(vhledano);


        
        if znakh == -1:
            banner=hildon.hildon_banner_show_information(win,"None" , "Zadany kod emulgatoru neni v databazi!");
            banner.set_timeout(3000);
        if znakh >= 0:
                rep = znakh;
                cary=0;
                mezi="";
                hb3=gtk.HBox();
                label = gtk.Label();
                hb3.pack_start(label, expand=False);
                win1=hildon.StackableWindow();
                win1.set_title("Detail emulgatoru");
                menu1 = hildon.AppMenu();
                win1.set_app_menu(menu1);
        
                webb=gtk.Button("Zobrazit emulgator na webu");
                
                menu1.append(webb);
        
                kod = "";
        
                vb2=gtk.VBox(homogeneous=False, spacing=0);
                hb2 = gtk.VBox()
                
                win1.add(vb2);
        
        
                while znakh>0:
                    if rep == znakh:
                        mezi = mezi + "Kod emulgatoru: ";
                
                    rep1 = r[rep];
            
                    if cary == 3:
                        if rep1=="1":
                            mezi = mezi + "\nBezpecna prisada";
                            rep1 = " ";
                            image = gtk.image_new_from_file(cesta+"/images/ico_bezpecna.gif");
                            hb2.pack_start(image, expand=False);
                        elif rep1== "0":
                            rep1=" ";
                
                    elif cary==4:
                        if rep1=="1":
                            mezi = mezi + "\nNebezpecna prisada";
                            rep1 = " ";
                            image = gtk.image_new_from_file(cesta+"/images/ico_nebezpecna.gif");
                            hb2.pack_start(image, expand=False);
                        elif rep1=="0":
                            rep1=" ";
            
                    elif cary==5:
                        if rep1=="1":
                            mezi = mezi + "\nZivocisneho puvodu";
                            rep1 = " ";
                            image = gtk.image_new_from_file(cesta+"/images/ico_zivocisna.gif");
                            hb2.pack_start(image, expand=False);
                        elif rep1=="0":
                            rep1=" ";
            
                    elif cary==6:
                        if rep1=="1":
                            mezi = mezi + "\nNevhodne pro deti";
                            rep1 = " ";
                            image = gtk.image_new_from_file(cesta+"/images/ico_ne_deti.gif");
                            hb2.pack_start(image, expand=False);
                        elif rep1=="0":
                            rep1=" ";
                    elif cary==7:
                        if rep1 == "1":
                            mezi = mezi + "\nZpusobuje alergii";
                            rep1 = " ";
                            image = gtk.image_new_from_file(cesta+"/images/ico_alergen.gif");
                            hb2.pack_start(image, expand=False);
                        elif rep1 == "0":
                            rep1 = " ";
            
                    elif cary==8:
                        if rep1 == "1":
                            rep1 = " ";
                            image = gtk.image_new_from_file(cesta+"/images/ico_zakazana.gif");
                            mezi = mezi + "\nZakazana prisada";
                            hb2.pack_start(image, expand=False);
                        elif rep1=="0":
                            rep1= " ";
                
                        elif rep1 == "\n":
                            break ;   
            
                    
                
                
             
                    rep = rep + 1;
      
                    if rep1 == "|":
                        cary = cary+1;
                        rep1=" ";
                        if cary == 1:
                            mezi = mezi + "\nNazev latky: ";
                        elif cary == 2:
                            mezi = mezi + "\nSkore nebezpecnosti: ";
                    
                    if cary == 0:
                        kod = kod + rep1;
                                            
                    mezi = mezi + rep1; 
               
                    
                hb3.pack_start(hb2)
                vb2.pack_start(hb3, expand=False);   
                label.set_text(mezi);
                webb.connect("clicked", self.na_web, kod);

                menu1.show_all();    
                win1.show_all();
                database.close();
    
    def __init__(self, widget):
    
        print "Program byl spusten";
    
        otevreno_nebez=0;
    
        win = hildon.StackableWindow();
        win.set_title("Zadejte kod emulgatoru");
    
        menu = hildon.AppMenu();
    
    
        selector = self.vytvor_selector()
    
        b = hildon.Button(gtk.HILDON_SIZE_FINGER_HEIGHT,hildon.BUTTON_ARRANGEMENT_VERTICAL,"Zobraz!");
        b.connect("clicked", self.hledej, selector, win);

   
        stupniceskod_b=gtk.Button("Stupnice skodlivosti");
        stupniceskod_b.connect("clicked", self.stupskod);
        menu.append(stupniceskod_b);
    
    
    
        nebezE=gtk.Button("Skodlive emulgatory");
        nebezE.connect("clicked", self.nebez_e);
        menu.append(nebezE);
    
    
        vb = gtk.VBox();
        hb = gtk.HBox();
        win.add(vb);
        vb.pack_start(selector, expand=True);
        vb.pack_start(hb, expand=False);
        hb.pack_start(b, expand=True);
    
        menu.show_all();
        win.set_app_menu(menu);
        
        win.show_all();